﻿using Authority.Model;
using Common.Library;
using System;
using System.Collections.Generic;
using System.Text;
using Tool.Model;

namespace Authority.Logic
{
    /// <summary>
    /// 部门管理逻辑接口
    /// </summary>
    public interface ISysDepartmentService
    {
        /// <summary>
        /// 获取部门列表信息
        /// </summary>
        /// <param name="parametersInfo"></param>
        /// <returns></returns>
        ResultJsonInfo<List<DepartmentsListResponse>> LoadListInfo(string sName);

        /// <summary>
        /// 获取部门树状列表信息
        /// </summary>
        /// <returns></returns>
        ResultJsonInfo<List<TreeInfo>> LoadTreeListInfo();


        /// <summary>
        /// 获取部门树状列表信息
        /// </summary>
        /// <returns></returns>
        ResultJsonInfo<List<SelectListInfo>> LoadSelectListInfo();

        /// <summary>
        /// 新增根节点信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> AddRoot(DepartmentRootRequest inputInfo);

        /// <summary>
        /// 新增子节点信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> AddChild(DepartmentChildRequest inputInfo);

        /// <summary>
        /// 修改信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> Modify(DepartmentModifyRequest inputInfo);

        /// <summary>
        /// 删除信息
        /// </summary>
        /// <param name="parameters"></param>
        /// <returns></returns>
        ResultJsonInfo<int> Remove(List<string> inputInfo);
        
        
        /// <summary>
        /// 移动顺序操作
        /// </summary>
        /// <param name="inputInfo"></param>
        /// <returns></returns>
        ResultJsonInfo<int> Move(DepartmentMoveRequest inputInfo);
    }
}
